﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using DAO;
using Domain;
using System.Collections.Generic;

public partial class EmpGestionConsumos : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            btn_limpiar_Click(null, null);
        }
    }
    protected void btn_guardar_Click(object sender, EventArgs e)
    {
        ul_mensajes.InnerHtml = string.Empty;

        Empresa emp = (Empresa)Utils.operadorLogueado;
        long dni = 0, pin = 0, idpublicacion = 0;

        if (string.IsNullOrEmpty(txt_dni.Text) ||
           !long.TryParse(txt_dni.Text, out dni))
        {
            ul_mensajes.InnerHtml += "<li class='itemerror'>" + "El PIN especificado no es válido, debe ser de 5 dígitos." + "</li>";
            return;
        }

        if (string.IsNullOrEmpty(txt_pin.Text) ||
           !long.TryParse(txt_pin.Text, out pin))
        {
            ul_mensajes.InnerHtml += "<li class='itemerror'>" + "El DNI especificado no es válido, debe ser de 8 dígitos." + "</li>";
            return;
        }

        if (string.IsNullOrEmpty(txt_idpublicacion.Text) ||
           !long.TryParse(txt_idpublicacion.Text, out idpublicacion))
        {
            ul_mensajes.InnerHtml += "<li class='itemerror'>" + "La publicación especificada no es válida." + "</li>";
            return;
        }

        ul_mensajes.InnerHtml += UsuarioDAO.RegistrarConsumo(dni, pin, idpublicacion, emp );
        if (!string.IsNullOrEmpty(ul_mensajes.InnerHtml))
        {
            ul_mensajes.InnerHtml = "<li class='itemerror'>" + ul_mensajes.InnerHtml + "</li>";
            return;
        }

        btn_limpiar_Click(null, null);
        ul_mensajes.InnerHtml += "<li class='itemok'>" + "Se registró el consumo correctamente" + "</li>";


    }
    protected void btn_limpiar_Click(object sender, EventArgs e)
    {
        ul_mensajes.InnerHtml = string.Empty;

        txt_idpublicacion.Text = 
            txt_pin.Text = 
                txt_dni.Text = string.Empty;

        txt_idpublicacion_TextChanged(null, null);
        
        ScriptManager.GetCurrent(Page).SetFocus(txt_idpublicacion);
    }
    protected void txt_idpublicacion_TextChanged(object sender, EventArgs e)
    {
        ScriptManager.GetCurrent(Page).SetFocus(txt_dni);

        div_descpub.Visible = false;
        long l;
        if (!long.TryParse(txt_idpublicacion.Text, out l))
        {
            return;
        }
        cargarDatos(l);
    }

    private void cargarDatos(long id)
    {
        List<Publicacion> pubs = PublicacionDAO.Traer(id, null, null);
        if (pubs.Count <= 0)
            return;
        Publicacion pub = pubs.First();

        lbl_Estado.Text = pub.Estado.ToString();
        if (pub.Estado != Publicacion.enum_Publicacion_Estado.Publicada)
            lbl_Estado.ForeColor = System.Drawing.Color.Red;
        else
            lbl_Estado.ForeColor = System.Drawing.Color.Green;

        // conf
        lbl_descripcion.Text = pub.Descripcion;

        img_logo.ImageUrl = Utils.imageHandlerPath(pub.Logo, pub is Empresa);
        img_logo.Attributes.Add("id", pub.Logo.HasValue ? pub.Logo.Value.ToString() : "");

        lbl_fcaducacion.Text = pub.FechaCaducidad.HasValue ? pub.FechaCaducidad.Value.ToString("dd/MM/yyyy") : string.Empty;

        div_descpub.Visible = true;
    }

}
